const formidable = require('formidable')
const path = require('path')
const router = require('express').Router()

router.get('/', (req, res) => {
  res.send(`
    <h2>With <code>"express"</code> npm package</h2>
    <form action="/api/v1/files" enctype="multipart/form-data" method="post">
      <div>Text field title: <input type="text" name="title" /></div>
      <div>File: <input type="file" name="someExpressFiles" multiple="multiple" /></div>
      <input type="submit" value="Upload" />
    </form>
  `);
})

router.post('/', (req, res, next) => {
  // 创建 formidable 实例
  const form = formidable({
    uploadDir: path.join(__dirname, '../public/uploads'), // 上传文件放置的目录
    keepExtensions: true,
    multiples: true
  })

  // 从请求中解析提交的数据（包括文本与文件数据）
  // fields 中保存的是文本数据信息
  // files 中保存的是文件数据相关信息
  form.parse(req, (err, fields, files) => {
    if (err) {
      next(err)
      return
    }
    res.json({
      code: 200,
      data: { fields, files }
    })
  })
})

module.exports = router
